home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Network Support Library
/
RoseWare - Network Support Library.iso
/
apidev
/
server.arc
/
TEST.C
< prev
next >
Wrap
Text File
|
1989-12-06
|
4KB
|
131 lines
/*------------------------------------------------*
* Drop-in TLA server *
* *
* Written by: Stephen T. Bunch *
* Engineering services *
* *
* Date: July 11, 1989 *
* *
*------------------------------------------------*/
#include <stdio.h>
#define INCL_BASE
#include <os2.h>
#include <nwcalls.h>
#include <malloc.h>
#include "server.h"
#include <fcntl.h>
/*
* ! ! ! ! ! N O T E ! ! ! ! !
*
* The index must be already read into memory with a call to ReadIndex()
* from the main program before you can use ServeItUp().
*/
main(argc,argv)
int argc;
char *argv[];
{
char filename[20];
int modify = FALSE;
if (argc == 1)
PrintUsage();
TLAReadIndex();
switch (argv[1][1]) {
case 'n':
if (argc != 3)
PrintUsage();
strcpy(filename, argv[2]);
modify = TRUE;
NewInput(filename);
break;
case 'q':
QueryData(FALSE);
break;
default: PrintUsage();
}
TLACloseIndex();
}
PrintUsage()
{
printf("\nUsage: -n filename : input data from 'filename' into TLA database");
printf("\n file format: tla[10]CR expanded[80]CR explaination[160]CR");
printf("\n the last tla must be 'quit'");
printf("\n -q : query data base for TLA only");
exit(0);
}
NewInput(filename)
char *filename;
{
struct COMMBUFFER commbuffer;
FILE *finput;
if ((finput = fopen(filename,"r")) == NULL) {
printf("\nError opening input file.");
exit(0);
}
while (TRUE) {
memset(&commbuffer, 0, sizeof(struct COMMBUFFER));
ReadString(commbuffer.record.tla, TLA_SIZE, finput);
if (strcmp(commbuffer.record.tla, "quit") == 0)
break;
ReadString(commbuffer.record.expanded, 80, finput);
ReadString(commbuffer.record.explain, 80, finput);
ReadString(&commbuffer.record.explain[80], 80, finput);
commbuffer.type |= ADD_TO_LIST;
TLAServeItUp(&commbuffer);
}
commbuffer.type |= SORT;
TLAServeItUp(&commbuffer);
}
ReadString(buffer, size, file)
char buffer[];
int size;
FILE *file;
{
int i;
char ch;
for (i=0; i<size-1; i++) {
if ((ch = fgetc(file)) == '\n')
break;
else
buffer[i] = ch;
}
buffer[i] = '\0';
}
QueryData(getItAll)
int getItAll;
{
struct COMMBUFFER commbuffer;
int ccode;
while (TRUE) {
memset(&commbuffer, 0, sizeof(struct COMMBUFFER));
printf("\nEnter TLA to find (q to quit): ");
gets(commbuffer.record.tla);
if (commbuffer.record.tla[0] == 'q')
break;
commbuffer.type |= QUERY;
if ((ccode = TLAServeItUp(&commbuffer)) != 0) {
printf("\nError in finding tla %s: %d",commbuffer.record.tla,ccode);
return;
}
PrintCommBuffer(&commbuffer);
}
}
PrintCommBuffer(commbuffer)
struct COMMBUFFER *commbuffer;
{
printf("\n%s : %-60s", commbuffer->record.tla, commbuffer->record.expanded);
printf("\n%-70s ", commbuffer->record.explain);
}